Creating an executable computer program generally involves generating algorithms, verifying the correctness of the algorithms, and implementing the algorithms into a programming language. This process often requires expertise in many areas, including coding in the target programming language. Generating a program for a hardware device typically requires specific knowledge of the device protocols and capabilities.
Recalculation software, such as spreadsheet or worksheet software for example, has allowed for declarative transformation between a data source and a data sink. For any given set of transformations connecting various data sources and data sinks, the output of the data source may be consumed by the data sink, or the output of the data source may be subject to transformations prior to being consumed by the data sink. These various transformations are evaluated, which results in one or more outputs represented throughout the recalculation document, such as a spreadsheet document. A user may add and edit the declarative transformations, such as by modifying values in a cell, without having in-depth knowledge of coding, and this editing automatically causes the transformations to be recalculated, which may cause a change in one or more outputs.
The Internet of Things (IoT) refers to the network of physical objects embedded with electronics, software, sensors, and network connectivity capabilities. These physical objects, sometimes referred to as “smart devices”, are capable of collecting data and exchanging data. However, smart devices typically are limited to communicate via a set protocol and often may only exchange data with other proprietary devices or services dictated by the device manufacturer.